#include "widget.h"
#include "ui_widget.h"
#include <QDebug>

// request: 请求
// response: 响应
// url（unique resource locator）: 统一资源定位器

#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    QNetworkAccessManager *manager = new QNetworkAccessManager(this);

    // 处理服务器的响应
    // 客户端会自动接收服务器端的响应内容，一旦完全接收到响应内容后，就会触发 QNetworkAccessManager::finished信号
    // QNetworkReply 用于处理服务器端返回的结果。使用该类的 readAll 方法就能将服务器返回的数据读取出来
    connect(manager, &QNetworkAccessManager::finished, [this](QNetworkReply *reply){
        QByteArray buf = reply->readAll();
        // 将接收到的服务器端的内容显示到 textBrowser 中
        ui->textBrowser->setHtml(buf);
    });

    // 点击 "->" 按钮发送请求
    connect(ui->pushButton, &QPushButton::clicked, [=](){
        QString url = ui->lineEdit->text();

        // 使用 get 方式发送请求
        manager->get(QNetworkRequest(QUrl(url)));
    });
}

Widget::~Widget()
{
    delete ui;
}
